/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2007，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	FilterService.java
 * 模块说明：	
 * 修改历史：
 * Dec 11, 2007 - lxm - 创建。
 */
package com.hd123.rumba.gwt.cpnts.filter.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.hd123.rumba.gwt.base.client.RBRemoteService;
import com.hd123.rumba.gwt.base.client.exception.ClientBizException;
import com.hd123.rumba.gwt.cpnts.filter.client.biz.ClassTypeInfo;

/**
 * 筛选服务 | 接口类
 * 
 * @author lxm
 * 
 */
public interface FilterService extends RBRemoteService {

  public static class Locator {

    private static FilterServiceAsync service = null;
    private static final String SERVICE_URL = "cpntsFilter";

    public static FilterServiceAsync getService() {
      if (service == null) {
        service = (FilterServiceAsync) GWT.create(FilterServiceAsync.class);
        ServiceDefTarget endpoint = (ServiceDefTarget) service;
        String moduleRelaUrl = GWT.getModuleBaseURL() + SERVICE_URL;
        endpoint.setServiceEntryPoint(moduleRelaUrl);
      }
      return service;
    }
  }

  /**
   * 取得指定类的类型信息，其中包含了类所有直接与间接引用的所有服务类。
   * 
   * @param className
   *            指定类的类名。不允许null。
   * @return 返回对应的类型信息。
   * @throws ClientBizException
   */
  public ClassTypeInfo getClassTypeInfo(String className) throws ClientBizException;
}
